程序通常使用所选编程语言提供的设计模式来构造。因为模板引入了全新的语言机制，所以不难发现其需要新的设计模式。我们将在这一部分探讨这些模式，C++标准库包含或使用了其中的几个。

模板与传统的语言不同，其允许我们参数化代码的类型和常量。当与(1)偏特化和(2)递归实例化相结合时，会带来惊人的效果。

我们不仅旨在列出各种有用的设计，还要传达启发此类设计的原则，以便创造新的技术。因此，下面的章节阐述了大量的设计技巧，包括:

\begin{itemize}
\item 
多态性

\item 
具有特征的泛型编程

\item 
处理重载和继承

\item 
元编程

\item 
异构结构和算法

\item 
表达式模板
\end{itemize}

还提供了一些注释来帮助调试模板。